package loja.services;

import java.util.List;

import loja.dao.DAOFactory;
import loja.dao.estoque.ItemEstoqueDAO;
import loja.dao.produto.ProdutoDAO;
import loja.model.estoque.ItemEstoque;
import loja.model.produto.Produto;

public class ProdutoService {

	private ProdutoDAO produtoDAO;
	private ItemEstoqueDAO itemEstoqueDAO;

	public ProdutoService(DAOFactory daoFactory) {
		this.produtoDAO = daoFactory.getProdutoDAO();
		this.itemEstoqueDAO = daoFactory.getItemEstoqueDAO();
	}

	public void incluirProduto(Produto produto, String local,
			Integer estoqueMinimo) {
		produto = produtoDAO.incluir(produto);

		ItemEstoque itemEstoque = new ItemEstoque();
		itemEstoque.setProduto(produto);
		itemEstoque.setLocal(local);
		itemEstoque.setEstoqueMinimo(estoqueMinimo);
		itemEstoqueDAO.incluir(itemEstoque);
	}

	public List<Produto> listarProdutos() {
		return produtoDAO.listar();
	}

	public void removerProduto(Produto produto) {
		produtoDAO.remover(produto);
		ItemEstoque itemEstoque = itemEstoqueDAO.consultarPorProduto(produto);
		itemEstoqueDAO.removerItemEstoque(itemEstoque);

	}

	public Produto consultarPorCodigo(String id) {
		if (id == null)
			return null;

		return produtoDAO.consultar(id);

	}

	public void alterarProduto(Produto produto) {
		produtoDAO.alterar(produto);

	}

}
